From 065e90e43a38fa7f8b0c1ed323000956f07adb5e Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Thu, 11 Aug 2005 21:06:15 +0000 Subject: [PATCH] When the guest shuts down a VM, make sure that the domain gets destroyed. Device model needs to do xm destroy before it exits on guest shutdown/poweroff/halt -p. Signed-off-by: Edwin Zhai Signed-off-by: Arun Sharma --- tools/ioemu/monitor.c | 8 ++------ tools/ioemu/target-i386-dm/helper2.c | 12 +++++++++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/tools/ioemu/monitor.c b/tools/ioemu/monitor.c index 677f9b6d85..43304ea253 100644 --- a/tools/ioemu/monitor.c +++ b/tools/ioemu/monitor.c @@ -225,14 +225,10 @@ static void do_info_history (void) } } +extern void destroy_vmx_domain(void); static void do_quit(void) { - extern int domid; - extern FILE* logfile; - char destroy_cmd[20]; - sprintf(destroy_cmd, "xm destroy %d", domid); - if (system(destroy_cmd) == -1) - fprintf(logfile, "%s failed.!\n", destroy_cmd); + destroy_vmx_domain(); exit(0); } diff --git a/tools/ioemu/target-i386-dm/helper2.c b/tools/ioemu/target-i386-dm/helper2.c index 361a2bbe9e..5cbeb88aeb 100644 --- a/tools/ioemu/target-i386-dm/helper2.c +++ b/tools/ioemu/target-i386-dm/helper2.c @@ -328,7 +328,16 @@ do_interrupt(CPUState *env, int vector) env->send_event = 1; } -//static unsigned long tsc_per_tick = 1; /* XXX: calibrate */ +void +destroy_vmx_domain(void) +{ + extern int domid; + extern FILE* logfile; + char destroy_cmd[20]; + sprintf(destroy_cmd, "xm destroy %d", domid); + if (system(destroy_cmd) == -1) + fprintf(logfile, "%s failed.!\n", destroy_cmd); +} int main_loop(void) { @@ -396,6 +405,7 @@ int main_loop(void) } } } + destroy_vmx_domain(); return 0; } -- 2.30.2